home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t7.d64 / snoopy.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  5KB  |  167 lines

  1. 0 REM   WRITTEN FOR THE PET (MAY 78) BY         BRAD COMPTON.  ADAPTED FOR THE
  2. 1 REM   64 (MAY 83) BY STEVEN DARNOLD           BOX 201, ALEXANDRA, NEW ZEALAND.
  3. 3 POKE56,127:POKE56576,149:POKE53272,4:POKE648,128:POKE792,116:POKE793,164:CLR
  4. 7 REM
  5. 8 DEL$=""
  6. 9 PO$="":REM LINE 8 READS DEL$="[40 DELETES]"
  7. 10 I0=1
  8. 20 POKE53280,9:POKE53281,9
  9. 50 L0=0:W0=0
  10. 90 PRINT"[147][150]              S N O O P Y "
  11. 100 PRINT"    [171][192][192][219][192][192][219][192][192][219][192][192][219][192][192][219][192][192][219][192][192][219][192][192][219][192][192][219][192][192][179]"
  12. 110 PRINT"    0  1  2  3  4  5  6  7  8  9 10"
  13. 111 IFI0THEN30000
  14. 112 GOSUB10000
  15. 115 REM ** MAIN SECTION
  16. 116 IFL0>4THEN4000
  17. 117 IFW0>4THEN6000
  18. 120 S=INT(RND(1)*11-5)
  19. 130 R=INT(RND(1)*11-5)
  20. 140 IFR=SORABS(R-S)=10THEN130
  21. 145 PRINT"";DEL$
  22. 150 POKE32867+S*3,(S>R)*-60+(S<R)*-62
  23. 160 POKE32867+R*3,87
  24. 170 GETA$:IFA$<>""THEN170
  25. 171 TM=TI:H=1:PRINTPO$;DEL$;:PRINT"SHOT:  ";
  26. 172 IFSK=960THEN174
  27. 173 IFTI-TM>=SKTHENPRINTDEL$;"TIME'S UP![145]":FORI=1TO2000:NEXT:GOTO250
  28. 174 GETA$:IFA$=""OR(A$<>"-"ANDA$<"1"ORA$>"9")THEN172
  29. 176 PRINTA$;:IFA$="-"THENH=-H:GOTO172
  30. 177 H=H*VAL(A$)
  31. 178 IFABS(S+H)<=5THEN200
  32. 180 PRINTPO$;DEL$;H;"IS OUT OF RANGE.";
  33. 190 FORI=1TO2000:NEXT:PRINTDEL$:GOTO170
  34. 200 SP=SP+TI-TM
  35. 201 FORJ1=1TO3:FORJ=33395TO33407:POKEJ,46:POKEJ-1,32:NEXT:POKE33407,32:NEXT
  36. 207 FORJ=STOS+H-SGN(H)STEPSGN(H)
  37. 208 S=S+SGN(H)
  38. 209 IFJ=RGOTO220
  39. 210 POKE32867+J*3,32
  40. 215 IFJ=R-SGN(H)THEN230
  41. 220 POKE32867+(J+SGN(H))*3,(S>R)*-60+(S<R)*-62+(S=R)*-87
  42. 230 FORI=1TO200:NEXT
  43. 240 NEXT
  44. 242 IFS=RTHEN1000
  45. 250 REM ** MISS
  46. 251 L0=L0+1
  47. 252 FORJ=1TO16:PRINT:NEXT:PRINTTAB(18)"** BLAM!! **":FORI=1TO200:NEXT
  48. 255 RESTORE
  49. 260 FORJ=1TOINT(RND(1)*5)+1:READM1:NEXT
  50. 262 M2=INT(RND(1)*8):IFPEEK(M1+M2)=209THEN262
  51. 263 FORJ=1TO8:POKEM1+M2,81:FORI=1TO50:NEXT
  52. 265 POKEM1+M2,209
  53. 266 FORI=1TO50:NEXTI,J
  54. 270 FORI=1TO750:NEXT
  55. 280 PRINTPO$"[129]";
  56. 300 ONINT(RND(1)*5)+1GOSUB350,380,410,450,480
  57. 310 PRINT"[155]";:FORJ=1TO24:PRINT:NEXT:PRINTDEL$
  58. 320 FORI=1TO2000:NEXT
  59. 330 PRINTPO$;:FORJ=1TO8:PRINT"                 ":NEXT
  60. 340 GOTO115
  61. 350 PRINT"[213][192][192][192][192][192][192][192][192][192][192][192][201]":PRINT"[221] RATS! GOT [221]":PRINT"[221] ME AGAIN! [221]":PRINT"[202][192][192][192][192][192][192][201][213][192][192][192][203]"
  62. 360 PRINT"       [202][203]":PRINTTAB(9);"[215]  [215] [215]"
  63. 370 RETURN
  64. 380 PRINT"[213][192][192][192][192][192][192][192][192][201]":PRINT"[221]        [221]":PRINT"[221] @%$&*! [221]":PRINT"[221]        [221]":PRINT"[202][192][192][192][192][192][201][213][192][203]"
  65. 390 PRINT"      [202][203]":PRINTTAB(10);"[215][215]"
  66. 400 RETURN
  67. 410 PRINT"[213][192][192][192][192][192][192][192][192][192][192][192][192][201]":PRINT"[221]            [221]":PRINT"[221] CURSE YOU, [221]":PRINT"[221] RED BARON! [221]"
  68. 420 PRINT"[221]            [221]":PRINT"[202][192][192][192][192][192][192][192][192][201][213][192][192][203]":PRINT"         [202][203]"
  69. 430 PRINTTAB(12);"[215][215]"
  70. 440 RETURN
  71. 450 PRINT"[213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]":PRINT"[221] HE HIT ME!?! [221]":PRINT"[202][192][192][192][192][192][192][192][192][201][213][192][192][192][192][203]"
  72. 460 PRINT"         [202][203]":PRINTTAB(12);"[215][215]"
  73. 470 RETURN
  74. 480 PRINT"[213][192][192][192][192][192][201]":PRINT"[221]RATS![221]":PRINT"[202][192][192][192][201][213][203]":PRINT"    [202][203]"
  75. 490 PRINTTAB(7);"[215][215][215]"
  76. 500 RETURN
  77. 1000 REM ** HIT
  78. 1010 W0=W0+1
  79. 1020 FORJ=1TO3
  80. 1030 POKE32867+R*3,87
  81. 1040 FORI=1TO100:NEXT
  82. 1050 POKE32867+R*3,81
  83. 1060 FORI=1TO100:NEXT
  84. 1070 POKE32867+R*3,86
  85. 1080 FORI=1TO100:NEXT
  86. 1090 NEXT
  87. 1100 PRINTPO$"[129]";DEL$
  88. 1110 ONINT(RND(1)*3)+1GOSUB1150,1200,1250
  89. 1111 PRINTPO$"[155]";DEL$
  90. 1112 FORI=1TO2500:NEXT
  91. 1113 PRINTPO$;:FORJ=1TO8:PRINT"                   ":NEXT
  92. 1115 GOTO115
  93. 1150 PRINT"[213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]":PRINT"[221]  HEH-HEH!    [221]":PRINT"[221]I'VE HIT HIM  [221]"
  94. 1160 PRINT"[221]"W0"TIMES NOW!![221]":PRINT"[202][192][192][192][192][192][192][192][192][192][201][213][192][192][192][203]":PRINT"          [202][203]"
  95. 1170 PRINTTAB(12);"[215][215]"
  96. 1180 RETURN
  97. 1200 PRINT"[213][192][192][192][192][192][192][192][192][192][201]":PRINT"[221] THAT'S  [221]":PRINT"[221]"W0"TIMES![221]":PRINT"[202][192][192][192][192][192][201][213][192][192][203]"
  98. 1210 PRINT"      [202][203]":PRINTTAB(9);"[215]  [215]  [215]"                
  99. 1220 RETURN
  100. 1250 PRINT"[213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]":PRINT"[221] HA! I'VE SHOT   [221]":PRINT"[221]  YOU"W0"TIMES,   [221]"
  101. 1260 PRINT"[221]   RED BARON!!   [221]":PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][201][213][192][192][192][192][203]"
  102. 1270 PRINT"            [202][203]":PRINTTAB(14);"[215] [215]"
  103. 1280 RETURN
  104. 4000 FORI=1TO35:POKE53280,1:POKE53281,1
  105. 4005 POKE53280,9:POKE53281,9:NEXT
  106. 4010 PRINTPO$;"[145]THE RED BARON SHOT YOU DOWN!"
  107. 4020 PRINT"[129]YOU HIT HIM";W0;"TIMES.[155]"
  108. 4030 GOTO20000
  109. 6000 REM ** WIN
  110. 6001 FORJ=1TO5:PRINTLEFT$(PO$,7);:PRINTTAB(28)"** BOOM! **[146]":FORI=1TO50:NEXT
  111. 6002 PRINTLEFT$(PO$,7);:PRINTTAB(28)"** BOOM! **":FORI=1TO50:NEXTI,J
  112. 6003 PRINTLEFT$(PO$,8);:FORJ=1TO15
  113. 6004 PRINTTAB(35)"   ":PRINTTAB(35)"[213][192][201]":PRINTTAB(36)"V":PRINTTAB(36)"[216][145][145][145]"
  114. 6005 FORI=1TO50:NEXTI,J
  115. 6006 PRINTTAB(35)"   ":PRINTTAB(36)" ":PRINTTAB(36)" ";
  116. 6007 PRINTLEFT$(PO$,8);DEL$
  117. 6009 A$="CADET  [157][157]JR. PILOTPILOT  [157][157]SR. PILOTACE":SP=INT((1400-SP)/200)
  118. 6010 PRINTPO$;"YOU SHOT DOWN THE RED BARON![129]"
  119. 6015 IFSP>4ANDL0=0THENPRINT"YOU ARE A NATIONAL HERO.":GOTO6022
  120. 6020 IFL0=0THENPRINT"YOU ARE AWARDED THE RANK OF "MID$(A$,(SP+1)*9-8,9)"."
  121. 6022 IFL0=0THENPRINT"[155]GREAT FLYING![155]":GOTO20000
  122. 6025 PRINT"HE HIT YOU"L0"TIMES.[155]"
  123. 6030 IFL0=1THENONINT(RND(1)*3)+1GOSUB6060,6070,6080       
  124. 6040 GOTO20000
  125. 6060 PRINT"NOT BAD.":RETURN
  126. 6070 PRINT"PRETTY GOOD.":RETURN
  127. 6080 PRINT"FAIRLY DECENT.":RETURN
  128. 9000 DATA33468,33507,33548,33588,33628
  129. 10000 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
  130. 10110 PRINTTAB(17)"[155]     [213][192][201]"
  131. 10120 PRINTTAB(17)"[160][160][160]  [169][146] [215][155][192][150][209]"
  132. 10130 PRINTTAB(17)"[160] [129][210][198][192][155] [146][129][201][155][178][192][203]"
  133. 10140 PRINTTAB(17)"[160] [129][198][196][196][178][203][155][171][201] "
  134. 10150 PRINTTAB(17)"[160]  [160][198][179][160][202][177][201]"
  135. 10160 PRINTTAB(17)"[158][160] [169][160][160][160][160][160][160][160] [223][146]"
  136. 10170 PRINTTAB(17)"[160][169][163][163][163][163][163][163][163][163][163][163][223][146]"
  137. 10180 PRINTTAB(17)"[160]  [163][163][163][163][163][163][163][163][146]"
  138. 10190 PRINTTAB(17)"[160]  [163][163][163][163][163][163][163][163][146]"
  139. 10200 PRINTTAB(17)"   [163][163][163][163][163][163][163][163][146][155]"
  140. 11000 RETURN
  141. 20000 END
  142. 30000 REM ** INSTRUCTIONS
  143. 30001 I0=0
  144. 30002 PRINTCHR$(14);
  145. 30010 PRINT"[155]";TAB(10);"O";TAB(22);"<"
  146. 30020 PRINT:PRINT:PRINTTAB(10);"^";TAB(22);"^"
  147. 30030 PRINTTAB(6);"[210][197][196] [194][193][210][207][206]";TAB(20);"[211][206][207][207][208][217]"
  148. 30040 PRINT:PRINT"[129]    [217]OU ARE A [215]ORLD [215]AR [201] FLYING ACE,
  149. 30050 [153]"OUT TO GET THE (null)ED PEEKARON.
  150. 30060 PRINT"    [212]O HIT HIM, ENTER THE POSITIVE OR
  151. 30070 [153]"NEGATIVE DISTANCE BETWEEN YOU AND THE
  152. 30080 PRINT"[210]ED [194]ARON.  [201]F YOU ENTER IT CORRECTLY,
  153. 30090 [153]"YOUR SHOT WILL HIT HIM.  RIGHT$F NOT, HE WILL";
  154. 30100 [153]"HIT YOU.  SYS(RIGHT$N THE ABOVE EXAMPLE, YOU
  155. 30105 PRINT"WOULD NEED A -4 TO HIT THE [210]ED [194]ARON.)
  156. 30110 [153]"FORRIGHT$F YOU HIT THE PEEKARON FIVE TIMES, HE WILL";
  157. 30120 [153]"CRASH.  RIGHT$F HE HITS YOUR (null)OPWITH LENAMEL
  158. 30125 PRINT"FIVE TIMES, YOU CRASH.
  159. 30140 [153]"    (null)OU WILL HAVE TO HURRY TO SHOOT THE
  160. 30145 PRINT"[194]ARON BEFORE HE SHOOTS YOU.
  161. 31000 [153][199](14);
  162. 31009 [153]"LIST        (null)RESS (null)LEFT$RIGHT$ASC(null)WAIT TO BEGIN.";:[146]653,1,1:[146]653,1
  163. 31020 SK[178]290
  164. 31025 [153][199](142);
  165. 31027 X$[178]PO$:[143] (KLUGE!
  166. 31030 [137]50
  167.